// 申请
let obj = {};
// 使用
obj.name = "lhg";
// 释放
obj = null;

/**
 * 引用计数算法
 * 
 * 优点：
 *      发现垃圾时立即回收
 *      最大限度减少程序暂停
 * 缺点：
 *      无法回收循环引用的对象
 *      时间开销大
 */

 /**
  * 标记清除算法
  * 
  * 核心思想：分标记和清除两个阶段完成
  * 遍历所有对象找标记活动对象
  * 遍历所有对象清除没有标记的对象
  * 回收相应的空间
  */

  /**
   * 标记整理算法
   * 
   * 标记整理可以看作是标记清除的增强
   * 标记阶段的操作和标记清除一致
   * 清除阶段会先执行整理，移动对象位置
   */